package 炫彩背景管理器类

import (
	objectbase "gitee.com/go_888/xcgui/xcgui/objectbase"
	res "gitee.com/go_888/xcgui/xcgui/res"
	xc "gitee.com/go_888/xcgui/xcgui/xc"
	xcc "gitee.com/go_888/xcgui/xcgui/xcc"
)

// X结构_背景管理器 背景管理器.
type X结构_背景管理器 struct {
	objectbase.X结构_对象基类
}

// New 背景_创建, 创建背景管理器.
func X创建() *X结构_背景管理器 {
	p := &X结构_背景管理器{}
	p.X设置句柄(xc.X背景_创建())
	return p
}

// NewByHandle 从句柄创建背景管理器对象.
func X创建并按句柄(句柄 int) *X结构_背景管理器 {
	p := &X结构_背景管理器{}
	p.X设置句柄(句柄)
	return p
}

// NewByName 从name创建背景管理器对象, 失败返回nil.
func X创建并按名称(名称 string) *X结构_背景管理器 {
	handle := res.X取背景管理器(名称)
	if handle > 0 {
		p := &X结构_背景管理器{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 背景_销毁.
func (b *X结构_背景管理器) X销毁() *X结构_背景管理器 {
	xc.X背景_销毁(b.X句柄)
	return b
}

// 背景_添加内容, 添加背景内容, 返回添加的背景对象数量.
//
// pText: 背景内容字符串.
func (b *X结构_背景管理器) X添加内容(背景内容 string) int32 {
	return xc.X背景_添加内容(b.X句柄, 背景内容)
}

// 背景_添加边框, 添加背景内容边框.
//
// nState: 组合状态.
//
// color: xc.RGBA 颜色.
//
// width: 线宽.
//
// id: 背景对象ID, 可忽略(填0).
func (b *X结构_背景管理器) X添加边框(组合状态 xcc.X组合状态, 颜色 int, 线宽, 背景对象ID int32) *X结构_背景管理器 {
	xc.X背景_添加边框(b.X句柄, 组合状态, 颜色, 线宽, 背景对象ID)
	return b
}

// 背景_添加填充, 添加背景内容填充.
//
// nState: 组合状态.
//
// color: xc.RGBA 颜色.
//
// id: 背景对象ID, 可忽略(填0).
func (b *X结构_背景管理器) X添加填充(组合状态 xcc.X组合状态, 颜色值 int, 背景对象ID int32) *X结构_背景管理器 {
	xc.X背景_添加填充(b.X句柄, 组合状态, 颜色值, 背景对象ID)
	return b
}

// 背景_添加图片, 添加背景内容图片.
//
// nState: 组合状态.
//
// hImage: 图片句柄.
//
// id: 背景对象ID, 可忽略(填0).
func (b *X结构_背景管理器) X添加图片(组合状态 xcc.X组合状态, 图片句柄 int, 背景对象ID int32) *X结构_背景管理器 {
	xc.X背景_添加图片(b.X句柄, 组合状态, 图片句柄, 背景对象ID)
	return b
}

// 背景_取数量, 获取背景内容数量.
func (b *X结构_背景管理器) X取数量() int32 {
	return xc.X背景_取数量(b.X句柄)
}

// 背景_清空, 清空背景内容.
func (b *X结构_背景管理器) X清空() *X结构_背景管理器 {
	xc.X背景_清空(b.X句柄)
	return b
}

// 背景_绘制, 绘制背景内容.
//
// nState: 组合状态.
//
// hDraw: 图形绘制句柄.
//
// pRect: 区域坐标.
func (b *X结构_背景管理器) X绘制(组合状态 xcc.X组合状态, 图形绘制句柄 int, 矩形区域 *xc.X结构_矩形) bool {
	return xc.X背景_绘制(b.X句柄, 组合状态, 图形绘制句柄, 矩形区域)
}

// 背景_绘制扩展, 绘制背景内容, 设置条件.
//
// nState: 组合状态.
//
// hDraw: 图形绘制句柄.
//
// pRect: 区域坐标.
//
// nStateEx: 当(nState)中包含(nStateEx)中的一个或多个状态时有效.
//
// 注解: 例如用来绘制列表项时, nState中包含项的状态(nStateEx)才会绘制, 避免列表项与元素背景叠加.
func (b *X结构_背景管理器) X绘制EX(组合状态 xcc.X组合状态, 图形绘制句柄 int, 矩形区域 *xc.X结构_矩形, 组合状态EX xcc.X组合状态) bool {
	return xc.X背景_绘制EX(b.X句柄, 组合状态, 图形绘制句柄, 矩形区域, 组合状态EX)
}

// 背景_启用自动销毁, 是否自动销毁.
//
// bEnable: 是否启用.
func (b *X结构_背景管理器) X启用自动销毁(是否启用 bool) *X结构_背景管理器 {
	xc.X背景_启用自动销毁(b.X句柄, 是否启用)
	return b
}

// 背景_增加引用计数.
func (b *X结构_背景管理器) X增加引用计数() *X结构_背景管理器 {
	xc.X背景_增加引用计数(b.X句柄)
	return b
}

// 背景_释放引用计数.
func (b *X结构_背景管理器) X释放引用计数() *X结构_背景管理器 {
	xc.X背景_释放引用计数(b.X句柄)
	return b
}

// 背景_取引用计数.
func (b *X结构_背景管理器) X取引用计数() int32 {
	return xc.X背景_取引用计数(b.X句柄)
}

// 背景_取引用计数, 设置背景内容, 返回设置的背景对象数量.
//
// pText: 背景内容字符串.
func (b *X结构_背景管理器) X设置背景内容(背景内容 string) int32 {
	return xc.X背景_设置内容(b.X句柄, 背景内容)
}

// 背景_取指定状态文本颜色.
//
// nState: 组合状态.
//
// color: 接收返回的 xc.RGBA 颜色.
func (b *X结构_背景管理器) X取指定状态文本颜色(组合状态 xcc.X组合状态, 返回颜色 *int) bool {
	return xc.X背景_取指定状态文本颜色(b.X句柄, 组合状态, 返回颜色)
}

// 背景_取背景对象, 返回BkObj对象句柄.
//
// id: 背景对象ID.
func (b *X结构_背景管理器) X取背景对象(背景对象ID int32) int {
	return xc.X背景_取背景对象(b.X句柄, 背景对象ID)
}
